package tum0r.webengine.models.core

import tum0r.webengine.config.BaseConfig
import tum0r.webengine.enums.EConfigType
import tum0r.webengine.extension.urlEncode
import java.io.File

/**
 * 说明: 上传和下载时用的文件
 *
 * 创建者: tum0r
 *
 * 时间: 2021/8/26 23:05
 *
 * @param[file] 关联的文件
 * @param[fileName] 文件别名
 * @param[fileType] 文件MIME类型
 */
data class EngineFile(val file: File, val fileName: String, val fileType: String) {
    /**
     * 获取文件的MIME
     */
    fun getFileMIME(): String = fileType.ifBlank { BaseConfig.getMIME(file.extension)[0] }

    /**
     * 获取文件下载名
     */
    fun getFileDownloadName(): String = if (BaseConfig.isState(EConfigType.FILE_NAME_URL_ENCODE)) fileName.ifBlank { file.name }.urlEncode() else fileName.ifBlank { file.name }
}